Internal combustion engines have been widely used for many years as power sources in passenger vehicles, tractor trailers, earth movers, military vehicles, etc. As the engines have become more complex and their performance requirements more restrictive, so too have the methods for monitoring the engines and controlling the combustion process. For example, a combustion-type gas turbine has a gas path which typically includes, in a serial-flow relationship, an air intake (or inlet), a compressor, a combustor, a turbine, and a gas outlet (or exhaust nozzle). Sensors located at various locations throughout the gas path provide feedback to one or more proportional-integral-derivative (PID) controllers that then compare the feedback to desired predetermined values. If unexpected differences exist, changes are made to the input variables to return the output values to an acceptable range. PID controllers provide satisfactory control behavior for many single input/single output systems whose dynamics change within a relatively small range. However, efficient operation of modern turbo-charged diesel engines (e.g., to obtain desired fuel economy, establish and maintain a desired power output, and reduce the level of emissions) requires the processing of a number of interrelated, but not easily measured engine and turbine operating parameters to determine optimal settings for fuel flow and distribution, and intake air flow. Since each PID controller has only one input variable and one output variable, they lack the ability to control a system with multivariable input and outputs.
This has led engine designers and manufacturers to explore other, more capable methods to control engine operation. One such method is the use of neural network controllers. Unlike PID (or classical) controllers, neural network controllers solve for an ad hoc control relationship. In other words, neural networks do not need to “know” the governing equations of a specific system they are controlling. A neural network merely needs some set of outputs and inputs accumulated from a system during a learning period to create a control rule for controlling the system in the future. One particularly popular neural network controller, known as a back propagation (BP) neural network includes a plurality of processing elements called neural units arranged in layers with interconnections between units of successive layers. Typically, a BP neural network has an input layer, an output layer, and one or more “hidden” layers in between. The hidden layer is necessary to allow solutions of nonlinear problems. Each unit functions in ways analogous to a biological neuron; a unit is capable of generating an output signal which is determined by the weighted sum of input signals it receives and a threshold specific to that unit. A unit is provided with inputs (either from outside the network or from other units) and uses these to compute a linear or non-linear output. The unit's output goes either to other units in subsequent layers or to outside the network. The input signals to each unit are weighted either positively or negatively, by factors derived in a learning process.
When the weight and threshold factors have been set to correct levels, a complex stimulus pattern at the input layer successively propagates between hidden layers, to result in a simpler output pattern, such as only one output layer unit having a significantly strong output. The network is “taught” by feeding it a succession of input patterns and corresponding expected output patterns. The network “learns” by measuring the difference (at each output unit) between the expected output pattern and the pattern that it just produced. Having done this, the internal weights and thresholds are modified by a learning algorithm to provide an output pattern which more closely approximates the expected output pattern, while minimizing the error over the spectrum of input patterns. Neural network learning is an iterative process, involving multiple “lessons”. Neural networks have the ability to process information in the presence of noisy or incomplete data and still generalize to the correct solution.
Even though BP neural networks are often well-suited to accurately model and control engine operation, they are not ideally suited for all such applications. One drawback of BP neural networks is related to the fact that in certain small computer applications, the extensive mathematical manipulations are time-consuming, and thus do not render control possible in real time for an actual physical system. For such applications, system designers in the past have implemented a less capable cerebellar model articulation controller (CMAC) network, which is not as computationally intensive as a BP neural network. CMAC computes control functions by transforming each input variable into a set of intermediate variables, which are combined to select a unique set of weights. These weights are then summed to produce an output. The fact that each possible input vector selects a unique set of memory locations, rather than a unique single location, allows CMAC to generalize (produce similar outputs for similar inputs) by controlling the degree of overlap in the sets of memory locations which are selected for each input vector. Since CMAC networks are not capable of efficiently processing multiple inputs to generate multiple outputs, they are not effective for use in most modern combustion engines.
In the past, one or more neural networks have been linked together or cascaded, to improve their ability to model complex multivariable processes. Unfortunately, the improved processing capabilities have typically resulted in a lower processing throughput by the CPU. For example, U.S. Pat. No. 5,570,282 to Hansen et al., discloses a multivariable nonlinear process controller that includes cascaded controllers for achieving optimal performance when the underlying process includes unmeasured disturbances, modeling errors, and unpredictable process changes. That reference, however, does not disclose the capability to provide increased processing capabilities at speeds normally associated with less capable neural networks.
Therefore a control system is needed that can perform robust calculations associated with BP neural networks, and provide them with the speed normally associated with CMAC networks.